<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>

        function sum(num1, num2) {
            this.sum = num1 + num2;
        }

        var obj = {
            name: '王宝强'
        }

        /*
        bind() 方法创建一个新的函数，在 bind() 被调用时，
        这个新函数的 this 被指定为 bind() 的第一个参数，
        而其余参数将作为新函数的参数，供调用时使用。

        function.bind(thisArg[, arg1[, arg2[, ...]]])
        */ 
        var f = sum.bind(obj, 20, 30);
        f();
        console.log(obj);
        


        function fn() {
            console.log(this);
        }

        var o = {age: 18};
        // fn 函数中的 this 会指向 o 这个对象
        var f1 = fn.bind(o);
        f1();



    </script>

</body>

</html>